home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / program / ddj0897.zip / DYN401.ZIP / dpp / token.c < prev    next >
C/C++ Source or Header  |  1997-04-16  |  4KB  |  164 lines

  1.  
  2.  
  3. /*  Copyright (c) 1993-1996 Algorithms Corporation  */
  4. /*  All rights reserved.  */
  5.  
  6.  
  7.  
  8.  
  9. /*  This file automatically generated by dpp - do not edit  */
  10.  
  11. #define    DPP_STRATEGY    2
  12. #define    DPP_FASTWIDE    0
  13.  
  14.  
  15.  
  16. #line 15 "token.d"
  17. #include "dpp.h" 
  18.  
  19. #define    CLASS    Token_c
  20. #define    ivType    Token_iv_t
  21.  
  22. #include "generics.h"
  23.  
  24. object    Token_c;
  25.  
  26.  
  27. #line 28 "token.c"
  28. typedef struct  _Token_iv_t  {
  29.     object iToken;
  30.     long iLine;
  31.     int iSpace;
  32. }    Token_iv_t;
  33.  
  34.  
  35.  
  36. #line 25 "token.d"
  37. cmeth objrtn Token_cm_gNew(object self)
  38.     return gShouldNotImplement(self, "gNew"); 
  39.  
  40. cmeth objrtn Token_cm_gNewToken(object self, char *tkn, long ln, int sp)
  41.     object obj; 
  42.     ivType *iv; 
  43.  
  44.     obj = oSuper(Token_c, gNew, self)(self); 
  45.     iv = ivPtr(obj); 
  46.     iv->iToken = gNewWithStr(String, tkn); 
  47.     iv->iLine = ln; 
  48.     iv->iSpace = sp; 
  49.     return obj; 
  50.  
  51. imeth objrtn Token_im_gDispose(object self)
  52. { Token_iv_t *iv = GetIVs(Token, self);
  53.     gDispose(iv->iToken); 
  54.     return oSuper(Token_c, gDispose, self)(self); 
  55.  
  56. imeth char * Token_im_gStringValue(object self)
  57. { Token_iv_t *iv = GetIVs(Token, self);
  58.     return gStringValue(iv->iToken); 
  59.  
  60. imeth objrtn Token_im_gToken(object self)
  61. { Token_iv_t *iv = GetIVs(Token, self);
  62.     return iv->iToken; 
  63.  
  64. imeth objrtn Token_im_gChangeToken(object self, char *str)
  65. { Token_iv_t *iv = GetIVs(Token, self);
  66.     gChangeStrValue(iv->iToken, str); 
  67.     return self; 
  68.  
  69. imeth long Token_im_gLineNumber(object self)
  70. { Token_iv_t *iv = GetIVs(Token, self);
  71.     return iv->iLine; 
  72.  
  73. imeth int Token_im_gSpace(object self)
  74. { Token_iv_t *iv = GetIVs(Token, self);
  75.     return iv->iSpace; 
  76.  
  77. imeth objrtn Token_im_gCopy(object self)
  78. { Token_iv_t *iv = GetIVs(Token, self);
  79.     object obj = oSuper(Token_c, gCopy, self)(self); 
  80.     ivType *niv = ivPtr(obj); 
  81.     niv->iToken = gCopy(iv->iToken); 
  82.     return obj; 
  83.  
  84. imeth objrtn Token_im_gStringRepValue(object self)
  85. { Token_iv_t *iv = GetIVs(Token, self);
  86.     return gStringRepValue(iv->iToken); 
  87.  
  88. imeth objrtn Token_im_gStringRep(object self)
  89. { Token_iv_t *iv = GetIVs(Token, self);
  90.     object a, b, s; 
  91.  
  92.     a = oSuper(Token_c, gStringRepValue, self)(self); 
  93.     b = gStringRepValue(iv->iToken); 
  94.     s = vBuild(String, gName(ClassOf(self)), " (", a, ", ", b, ")\n", NULL); 
  95.     DISPOSE(a); 
  96.     DISPOSE(b); 
  97.     return s; 
  98.  
  99.  
  100. #line 114 "token.c"
  101.  
  102. objrtn    Token_initialize(void)
  103. {
  104.     static  CRITICALSECTION  cs;
  105.     static  int volatile once = 0;
  106.  
  107.     ENTERCRITICALSECTION(_CI_CS_);
  108.     if (!once) {
  109.         INITIALIZECRITICALSECTION(cs);
  110.         once = 1;
  111.     }
  112.     LEAVECRITICALSECTION(_CI_CS_);
  113.  
  114.     ENTERCRITICALSECTION(cs);
  115.  
  116.     if (Token_c) {
  117.         LEAVECRITICALSECTION(cs);
  118.         return Token_c;
  119.     }
  120.     INHIBIT_THREADER;
  121.     Link_initialize();
  122.     if (Token_c)  {
  123.         ENABLE_THREADER;
  124.         LEAVECRITICALSECTION(cs);
  125.         return Token_c;
  126.     }
  127.     Token_c = gNewClass(Class, "Token", sizeof(Token_iv_t), 0, Link, END);
  128.     cMethodFor(Token, gNew, Token_cm_gNew);
  129.     cMethodFor(Token, gNewToken, Token_cm_gNewToken);
  130.     iMethodFor(Token, gToken, Token_im_gToken);
  131.     iMethodFor(Token, gSpace, Token_im_gSpace);
  132.     iMethodFor(Token, gLineNumber, Token_im_gLineNumber);
  133.     iMethodFor(Token, gDispose, Token_im_gDispose);
  134.     iMethodFor(Token, gChangeToken, Token_im_gChangeToken);
  135.     iMethodFor(Token, gStringRepValue, Token_im_gStringRepValue);
  136.     iMethodFor(Token, gCopy, Token_im_gCopy);
  137.     iMethodFor(Token, gDeepDispose, Token_im_gDispose);
  138.     iMethodFor(Token, gStringRep, Token_im_gStringRep);
  139.     iMethodFor(Token, gDeepCopy, Token_im_gCopy);
  140.     iMethodFor(Token, gStringValue, Token_im_gStringValue);
  141.  
  142.     ENABLE_THREADER;
  143.  
  144.     LEAVECRITICALSECTION(cs);
  145.  
  146.     return Token_c;
  147. }
  148.  
  149.  
  150.  
  151.